var router = require('express').Router();
var util = require('util');
var EventProxy = require("eventproxy");
var uuid = require("node-uuid");
var async = require('async');

var Consts = require('../consts');
var resultJson = require('../result-json');
var Utils = require('../utils');
var logger = require('../models/logger');
var Examine = require('../models/Examine');
var ExaminePaper = require('../models/ExaminePaper');
var ErrSet = require('../models/ErrSet');
var User = require('../models/User');
var Course = require('../models/Course');
var nodeExcel = require('../xls-export');

router.post('/', function(req, res) {
	res.send('respond with a resource');
});

//list 查询试题
router.post("/listQue", function(req, res) {
	var que = req.body;
	var proxy = new EventProxy();
	proxy.all("results", "count", function(results, count) {
		res.send(resultJson(0, {
			results: results,
			count: count
		}))
	})
	var start = que.start || 0;
	var count = que.count || Consts.MAX;
	var field = que.field; // 知识点  课程
	var query;
	if (field == "knowledge") {
		query = Examine.find({
			kid: que.kid //知识点id
		})
	} else if (field == "course") {

	} else
		return res.send(resultJson(3));

	query.skip(start).limit(count).exec(function(err, examines) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		proxy.emit("results", examines);
	});
	query.count(function(err, num) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		proxy.emit("count", num);
	});
});

//查询试卷
router.post("/listPaper", function(req, res) {
	var paper = req.body;
	var proxy = new EventProxy()
	proxy.all("results", "count", function(results, count) {
		res.send(resultJson(0, {
			results: results,
			count: count
		}))
	})
	var start = paper.start;
	var count = paper.count;
	if (!start) start = 0;
	if (!count) count = Consts.MAX;
	var query;
	if (paper.cid) { //课程id
		query = ExaminePaper.find({
			owner: paper.owner || paper._user._id,
			cid: paper.cid
		}, {
			questions: 0
		});
	} else {
		query = ExaminePaper.find({
			owner: paper.owner || paper._user._id
		}, {
			questions: 0
		});
	}
	query.skip(start).limit(count).sort({
		create: -1
	}).exec(function(err, examines) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		examines = JSON.parse(JSON.stringify(examines));
		var result = [];
		async.each(examines, function(item, cb) {
			Course.findById(item.cid, {
				name: 1
			}).exec(function(err, course) {
				if (err)
					cb(err);
				if (!course)
					course = {};
				item.course = course;
				result.push(item);
				cb();
			});
		}, function(err) {
			if (err) {
				logger.error(err);
				return res.send(resultJson(2));
			}
			proxy.emit("results", result);
		});
	});
	query.count(function(err, num) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		proxy.emit("count", num);
	});
});

//保存 更新 试题
router.post("/upsertQue", function(req, res) {
	var que = req.body;
	if (que._id) { //modify
		Examine.update({
			_id: que._id
		}, {
			$set: que
		}).exec(function(err) {
			if (err) {
				logger.error(err);
				return res.send(resultJson(2));
			}
			res.send(resultJson(0));
		});
	} else { //add
		que.create = new Date();
		new Examine(que).save(function(err, que) {
			if (err) {
				logger.error(err);
				return res.send(resultJson(2));
			}
			res.send(resultJson(0, que));
		});
	}
});

//保存 更新 试卷
router.post("/upsertPaper", function(req, res) {
	var paper = req.body;
	// if (paper._id) { //modify
	// 	ExaminePaper.update({
	// 		_id: paper._id
	// 	}, {
	// 		$set: paper
	// 	}).exec(function(err) {
	// 		if (err) {
	// 			logger.error(err);
	// 			return res.send(resultJson(2));
	// 		}
	// 		res.send(resultJson(0));
	// 	});
	// } else { //add
	if (!req.body.cid || !req.body.score)
		return res.send(resultJson(3));

	var errSet = req.body.errSet;

	paper.create = new Date();
	paper.owner = paper._user._id;
	new ExaminePaper(paper).save(function(err, paper) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0, paper));
	});
	User.update({
		_id: req.body._user._id,
		"course._id": req.body.cid //课程id
	}, {
		"course.$.score": req.body.score //考试得分
	}).exec(function(err) {
		if (err)
			logger.error(err);
	});
	if (errSet)
		async.each(errSet, function(item, cb) {
			delete item._id;
			item.owner = req.body._user._id;
			new ErrSet(item).save(function(err) {
				if (err)
					cb(err);
			})
		}, function(err) {
			if (err) logger.error(err);
		});
	// }
});

//删除试题
router.post("/removeQue", function(req, res) {
	var que = req.body;
	Examine.remove({
		_id: que._id
	}).exec(function(err) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0));
	});
});

//删除试卷
router.post("/removePaper", function(req, res) {
	var paper = req.body;
	ExaminePaper.remove({
		_id: paper._id
	}).exec(function(err) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0));
	});
});

//试题详情
router.post("/detailQue", function(req, res) {
	var que = req.body;
	Examine.findOne({
		_id: que._id
	}).exec(function(err, que) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0, que));
	});
});

//试题详情
router.post("/detailKnowledge", function(req, res) {
	var que = req.body;
	Examine.find({
		owner: que._id
	}).exec(function(err, ques) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0, ques));
	});
});

//试卷详情
router.post("/detailPaper", function(req, res) {
	var paper = req.body;
	ExaminePaper.findOne({
		_id: paper._id
	}).exec(function(err, paper) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0, paper));
	});
});

//批量导入试题
router.post("/importQue", function(req, res) {
	var values = req.body.values; //解析后的数据  [{}]
	if (!values)
		return res.send(resultJson(3));
	if (typeof values == "string")
		values = JSON.parse(values);

	function in_array(stringToSearch, arrayToSearch) {
		for (s = 0; s < arrayToSearch.length; s++) {
			thisEntry = arrayToSearch[s].toString();
			if (thisEntry == stringToSearch) {
				return true;
			}
		}
		return false;
	}

	async.each(values, function(value, cb) {
		var item = [];
		if (!value["正确答案"]) {
			value["正确答案"] = "";
		}
		var rightAnswer = value["正确答案"].split(",");
		var type = 1;
		if (value["题目类型"] == "单选题") {
			type = 1;
			if (value["选项1"])
				if (in_array("选项1", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项2"])
				if (in_array("选项2", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项3"])
				if (in_array("选项3", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项4"])
				if (in_array("选项4", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项5"])
				if (in_array("选项5", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项6"])
				if (in_array("选项6", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项7"])
				if (in_array("选项7", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项8"])
				if (in_array("选项8", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项9"])
				if (in_array("选项9", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项10"])
				if (in_array("选项10", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

		} else if (value["题目类型"] == "多选题") {
			type = 2;
			if (value["选项1"])
				if (in_array("选项1", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项2"])
				if (in_array("选项2", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项3"])
				if (in_array("选项3", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项4"])
				if (in_array("选项4", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项5"])
				if (in_array("选项5", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项6"])
				if (in_array("选项6", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项7"])
				if (in_array("选项7", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项8"])
				if (in_array("选项8", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项9"])
				if (in_array("选项9", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项10"])
				if (in_array("选项10", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
		} else if (value["题目类型"] == "判断题") {
			type = 3;
			if (value["选项1"])
				if (in_array("选项1", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项1"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项2"])
				if (in_array("选项2", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项2"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项3"])
				if (in_array("选项3", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项3"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项4"])
				if (in_array("选项4", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项4"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项5"])
				if (in_array("选项5", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项5"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项6"])
				if (in_array("选项6", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项6"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项7"])
				if (in_array("选项7", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项7"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项8"])
				if (in_array("选项8", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项8"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
			if (value["选项9"])
				if (in_array("选项9", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项9"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}

			if (value["选项10"])
				if (in_array("选项10", rightAnswer)) {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: true, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				} else {
					item.push({
						Id: uuid.v4(), //选项ID
						Content: Utils.replaceString(value["选项10"]), // 选项内容
						IfRightAnswer: false, //选项是否正确答案
						OrderNum: 1, //选项的序号
					})
				}
		} else if (value["题目类型"] == "连线题") {
			type = 4;
			if (value["选项1"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项1"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项1") + 1, //选项的序号
				})

			if (value["选项2"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项2"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项2") + 1, //选项的序号
				})
			if (value["选项3"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项3"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项3") + 1, //选项的序号
				})
			if (value["选项4"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项4"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项4") + 1, //选项的序号
				})
			if (value["选项5"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项5"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项5") + 1, //选项的序号
				})
			if (value["选项6"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项6"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项6") + 1, //选项的序号
				})
			if (value["选项7"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项7"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项7") + 1, //选项的序号
				})
			if (value["选项8"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项8"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项8") + 1, //选项的序号
				})
			if (value["选项9"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项9"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项9") + 1, //选项的序号
				})
			if (value["选项10"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项10"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项10") + 1, //选项的序号
				})

		} else if (value["题目类型"] == "排序题") {
			type = 5;
			if (value["选项1"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项1"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项1") + 1, //选项的序号
				})

			if (value["选项2"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项2"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项2") + 1, //选项的序号
				})
			if (value["选项3"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项3"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项3") + 1, //选项的序号
				})
			if (value["选项4"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项4"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项4") + 1, //选项的序号
				})
			if (value["选项5"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项5"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项5") + 1, //选项的序号
				})
			if (value["选项6"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项6"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项6") + 1, //选项的序号
				})
			if (value["选项7"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项7"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项7") + 1, //选项的序号
				})
			if (value["选项8"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项8"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项8") + 1, //选项的序号
				})
			if (value["选项9"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项9"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项9") + 1, //选项的序号
				})
			if (value["选项10"])
				item.push({
					Id: uuid.v4(), //选项ID
					Content: Utils.replaceString(value["选项10"]), // 选项内容
					IfRightAnswer: false, //选项是否正确答案
					OrderNum: rightAnswer.find("选项10") + 1, //选项的序号
				})
		}
		Examine.remove({
			owner: value["节点ID"]
		}).exec(function(err) {
			new Examine({
				owner: value["节点ID"], //知识点id
				Content: Utils.replaceString(value["题干"]), // 题目名称,题干
				QuestionType: type, //题目类型(1单选、2多选、3判断、4填空、5问答、6连线（匹配）、7排序)
				Tip: Utils.replaceString(value["答案解析"]), //答案解析
				QuestionOptionList: item
			}).save(function(err, examines) {
				console.log({
					owner: value["节点ID"], //知识点id
					Content: value["题干"], // 题目名称,题干
					QuestionType: type, //题目类型(1单选、2多选、3判断、4填空、5问答、6连线（匹配）、7排序)
					Tip: value["答案解析"], //答案解析
					QuestionOptionList: item
				}, examines);
				if (err)
					cb(err);
				cb();
			});
		});

	}, function(err) {
		if (err) {
			logger.error(err);
			return res.send(resultJson(2));
		}
		res.send(resultJson(0));
	});
});

//导出试题模版
router.get("/exportTemplate", function(req, res) {
	var _id = req.query._id;
	if (!_id)
		return res.send(resultJson(3));
	var conf = {};
	var title1 = "试题导入模版";
	conf.heads = [];
	conf.cols = [{
		caption: '节点ID',
		type: 'string',
	}, {
		caption: '节点名称',
		type: 'string',
	}, {
		caption: '题目类型',
		type: 'string',
	}, {
		caption: '题干',
		type: 'string',
	}, {
		caption: '选项1',
		type: 'string',
	}, {
		caption: '选项2',
		type: 'string',
	}, {
		caption: '选项3',
		type: 'string',
	}, {
		caption: '选项4',
		type: 'string',
	}, {
		caption: '选项5',
		type: 'string',
	}, {
		caption: '选项6',
		type: 'string',
	}, {
		caption: '选项7',
		type: 'string',
	}, {
		caption: '选项8',
		type: 'string',
	}, {
		caption: '选项9',
		type: 'string',
	}, {
		caption: '选项10',
		type: 'string',
	}, {
		caption: '正确答案',
		type: 'string'
	}, {
		caption: '答案解析',
		type: 'string'
	}];
	conf.rows = [];
	Course.findById(_id, {

	}, function(err, course) {
		if (err)
			return res.send(resultJson(2));
		if (!course)
			course = {};
		var filename = course.name + "试题导入模版.xlsx";
		filename = encodeURI(filename);
		var results = [];
		// results.push({
		// 	_id: course._id,
		// 	name: course.name
		// });
		for (var i = 0; i < course.chapter.length; i++) {
			if (course.chapter[i].category == Consts.CHAPTERTYPE.COURSEEXAM)
				results.push({
					_id: course.chapter[i]._id,
					name: course.chapter[i].name
				});
			for (var j = 0; j < course.chapter[i].knowledge.length; j++) {
				results.push({
					_id: course.chapter[i].knowledge[j]._id,
					name: course.chapter[i].knowledge[j].name
				});
			}
		};
		console.log(results);
		for (var i = 0; i < results.length; i++) {
			var outputs = [];
			outputs.push(
				results[i]._id || "",
				results[i].name || "",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				"",
				""
			);
			conf.rows.push(outputs);
		};
		var result = nodeExcel.execute(conf);
		res.setHeader('Content-Type', 'application/vnd.openxmlformats');
		res.setHeader("Content-Disposition", "attachment; filename=" + filename);
		return res.end(result, 'binary');
	});
});

module.exports = router;